/**
 * 认证工具
 * 提供token和用户认证相关的工具方法
 */
import { getToken, setToken, removeToken, clearUserInfo, setUserId, setUserAccount } from './storage';

/**
 * 获取token
 * @returns token值，不存在返回null
 */
export function getAuthToken(): string | null {
  return getToken();
}

/**
 * 设置token
 * @param token - token值
 */
export function setAuthToken(token: string): void {
  setToken(token);
}

/**
 * 移除token
 */
export function removeAuthToken(): void {
  removeToken();
}

/**
 * 判断是否已登录
 * @returns 如果存在token返回true，否则返回false
 */
export function isLogin(): boolean {
  const token = getToken();
  return token !== null && token !== '';
}

/**
 * 清除所有认证信息
 * 包括token和用户信息
 */
export function clearAuth(): void {
  clearUserInfo();
}

/**
 * 保存登录信息
 * @param token - token值
 * @param userId - 用户ID（可选）
 * @param userAccount - 用户账号（可选）
 */
export function saveLoginInfo(
  token: string,
  userId?: string | number,
  userAccount?: string
): void {
  setAuthToken(token);
  if (userId !== undefined) {
    setUserId(userId);
  }
  if (userAccount !== undefined) {
    setUserAccount(userAccount);
  }
}

